home *** CD-ROM | disk | FTP | other *** search
/ Item MB Quick & Easy 2.0 / Item MB Quick & Easy 2.0.iso / mbfacad / eaitpros.lsp < prev    next >
Lisp/Scheme  |  1998-03-15  |  4KB  |  99 lines

  1. ;---------Unterfunktion zur Zeichnung von Elementen S onstiges (z.B. Wellen) 
  2. ;--------------------------------------------------------------------------
  3. ; Wird neues Element erstellt, trage die Liste mit den Punkten der Quer-
  4. ; linien ein (siehe erstes SETQ) und füge eine entsprechende Zeile in der
  5. ; ersten COND - Anweisung ein !!!!
  6. ;
  7. ; PROFIL muß eine String entsprechend aus erster COND- Anweisung sein
  8. ; EPKT   ist Einfügepkt.
  9. ; LA     ist Laenge des Elements
  10. ; WIN    ist Einfügewinkel
  11. ; KRI    ist Konstruktionswinkel
  12. ;--------------------------------------------------------------------------
  13.  
  14. (defun EAITproS (PROFIL EPKT LA WIN KRI / SS1 LI LI1 LI2 LI3 LI4 LI5 LI6 LI7 LI8 LI9
  15.                                           LIN END1 WIZ N Z)
  16.  
  17. ;--------Listen der Linien
  18.  
  19.        (setvar "OSMODE" 0)
  20.        (setq LI1 '(-5 5)
  21.              LI2 '(-7 7)
  22.              LI3 '(-10 10)
  23.              LI4 '(-12.5 12.5)
  24.              LI5 '(-15 15)
  25.              LI6 '(-3 3)
  26.              LI7 '(-25 25)
  27.        )
  28.        (setq END1 (polar EPKT WIN LA))
  29.        (cond ((= PROFIL "Welle 10")(setq LI LI1))
  30.              ((= PROFIL "Welle 14")(setq LI LI2))
  31.              ((= PROFIL "Welle 20")(setq LI LI3))
  32.              ((= PROFIL "Welle 25")(setq LI LI4))
  33.              ((= PROFIL "Welle 30")(setq LI LI5))
  34.              ((= PROFIL "Welle 6")(setq LI LI6))
  35.              ((= PROFIL "Rohr 50")(setq LI LI7))
  36.        );cond
  37.  
  38. ;---------Bedingungen für Quadranten    
  39.  
  40.        (cond ((AND (<= WIN KRI)(< KRI (+ WIN(/ Pi 2))));I. Quadrant
  41.                        (setq WIN WIN                         ;
  42.                              WIZ (+ WIN (/ Pi 2))            ; 
  43.                        )                                     ;
  44.              )                                         ;I. Quadrant
  45.              ((AND (<= (+ WIN(/ Pi 2)) KRI)(< KRI (+ WIN Pi))); II. Quadrant 
  46.                        (setq WIN (+ WIN Pi)                         ;
  47.                              WIZ (- WIN (/ Pi 2))                   ;
  48.                        )                                            ;
  49.              )                                                ; II. Quadrant
  50.          
  51.              ((AND (<= (+ WIN Pi) KRI)(< KRI (+ WIN (/(* Pi 3)2)))); III.Quadrant
  52.                        (setq WIN (+ WIN Pi)                              ;
  53.                              WIZ (+ WIN (/ Pi 2))                        ;
  54.                        )                                                 ;
  55.              )                                                     ; III. Quadrant
  56.  
  57.              (T                                                    ; IV. Quadrant
  58.                        (setq WIN WIN                                     ;
  59.                              WIZ (- WIN (/ Pi 2))                        ;
  60.                        )                                                 ;
  61.              )                                                     ; IV. Quadrant
  62.        );cond            
  63.        (setq WINFO (/ (+ WIN WIZ) 2))     ;Winkel für EAITinfo - Punkt
  64.  
  65. ;-----------Zeichnen der Mittellinie    
  66.  
  67.        (command EAITlay EAITlse "EAITstpg" "")
  68.        (setq END1 (polar EPKT WIN LA))    
  69.        (command EAITlin EPKT END1 "")
  70.        (setq LIN (entlast)
  71.              SS1 (ssadd (entlast))
  72.              Z -1
  73.        )
  74.     
  75. ;-----------Zeichnen der restlichen Linien
  76.  
  77.        (command EAITlay EAITlse "EAIT50" "")
  78.        (foreach N LI
  79.                (command EAITlin (polar EPKT WIZ N)(polar END1 WIZ N) "")
  80.                (setq SS1 (ssadd (entlast) SS1))
  81.                (setq Z (1+ Z))
  82.        );foreach
  83.  
  84.        (command EAITlin (polar EPKT WIZ (nth 0 LI)) (polar EPKT WIZ (nth Z LI)) "") ;Seiten-Linie d. Elements
  85.        (setq SS1 (ssadd (entlast) SS1))
  86.        (command EAITlin (polar END1 WIZ (nth 0 LI)) (polar END1 WIZ (nth Z LI)) "") ;Seiten-Linie d. Elements
  87.        (setq SS1 (ssadd (entlast) SS1))    
  88.  
  89. ;-----------Block bilden
  90.  
  91.        (setq BName (EAITbnr))
  92.        (command EAITblo BName EPKT SS1 ""
  93.                 EAITege BName EPKT "" "" "" )
  94.        (princ)
  95.  
  96. );Unterfkt.
  97.  
  98. (princ)
  99.